0cb27275ba5986a2d292dcb4363e38688f3742e0,platform/vcs-impl/src/com/intellij/openapi/vcs/changes/VcsDirtyScopeVfsListener.java,VcsDirtyScopeVfsListener,after,#List#,89
Before Change
if (event instanceof VFileContentChangeEvent) {
final VirtualFile file = ((VFileContentChangeEvent)event).getFile();
dirtyFilesAndDirs.addToFiles(file);
} else if (event instanceof VFileCopyEvent) {
final VirtualFile file = ((VFileCopyEvent)event).getFile();
dirtyFilesAndDirs.addToFiles(file);
} else if (event instanceof VFileCreateEvent) {
final VFileCreateEvent ce = ((VFileCreateEvent)event);
final VirtualFile file = ce.getParent().findChild(ce.getChildName());
dirtyFilesAndDirs.addToFiles(file);
} else if (event instanceof VFileMoveEvent) {
dirtyFilesAndDirs.add(((VFileMoveEvent)event).getFile());
} else if (event instanceof VFilePropertyChangeEvent) {
After Change
// collect files and directories - sources of events
for (VFileEvent event : events) {
final VirtualFile file = getFileForEvent(event);
if (file == null) { continue; }
if (event instanceof VFileContentChangeEvent || event instanceof VFileCopyEvent || event instanceof VFileCreateEvent) {
dirtyFilesAndDirs.addToFiles(file);
} else if (event instanceof VFilePropertyChangeEvent) {
final VFilePropertyChangeEvent pce = (VFilePropertyChangeEvent) event;
if (pce.getPropertyName().equals(VirtualFile.PROP_NAME)) {
// if a file was renamed, then the file is dirty and its parent directory is dirty too;
// if a directory was renamed, all its children are recursively dirty, the parent dir is also dirty but not recursively.
dirtyFilesAndDirs.add(file); // the file is dirty recursively
dirtyFilesAndDirs.addToFiles(file.getParent()); // directory is dirty alone. if parent is null - is checked in the method
} else {
dirtyFilesAndDirs.addToFiles(file);
}
}
}